import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

public class LocalDateTimeTest {
    public static void main(String[] args) {
        // 获取本地事件和日期对象
        LocalDateTime ldt = LocalDateTime.now();  // 年 月 日 时 分 秒 纳秒
        System.out.println(ldt);

        // 获取日期和时间的全部信息
        int year = ldt.getYear();               // 年
        int month = ldt.getMonthValue();        // 月
        int day = ldt.getDayOfMonth();          // 日
        int hour = ldt.getHour();               // 时
        int minute = ldt.getMinute();           // 分
        int second = ldt.getSecond();           // 秒
        int dayOfYear = ldt.getDayOfYear();           // 一年中第几天
        int dayOfWeek = ldt.getDayOfWeek().getValue();     // 周几
        System.out.println(year);
        System.out.println(month);
        System.out.println(day);
        System.out.println(hour);
        System.out.println(minute);
        System.out.println(second);
        System.out.println(dayOfYear);
        System.out.println(dayOfWeek);

        // 修改时间信息  with
        // 加多少       plus
        // 减多少       minus
        // 获取指定时间的LocalDateTime对象:
        LocalDateTime time1 = LocalDateTime.of(2099,12,12, 12, 12,12,3333);
        LocalDateTime time2 = LocalDateTime.of(2099,12,12, 12, 12,12,3333);
        System.out.println(time1);
        System.out.println(time2);

        // 判断2个日期、时间对象是否相等,在前还是在后    equals   isBefore   isAfter
        System.out.println(time1.equals(time2));   //localTime和localTime1是否相等   True
        System.out.println(time1.isBefore(ldt));        // localTime是否在当前时间之前       false
        System.out.println(time1.isAfter(ldt));         // localTime是否在当前时间之后       True

        // 可以把LocalDateTime转换为LocalDate和LocalTime
        LocalDate ld = ldt.toLocalDate();
        LocalTime lt = ldt.toLocalTime();
        LocalDateTime ldt1 = LocalDateTime.of(ld, lt);
        System.out.println(ld);
        System.out.println(lt);
        System.out.println(ldt1);
    }
}
